### -*- coding: utf-8 -*- #############################################
# Разработано компанией Ключевые Решения (http://keysolutions.ru/)
# Все права защищены, 2006-2007
#
# Developed by Key Solutions (http://keysolutions.ru/)
# All right reserved, 2006-2007
#######################################################################
# Владельцем всех исключительных авторских и смежных прав является ООО
# "Ключевые Решения". Данное ПО является коммерческим продуктом и его
# использование возможно только при наличии лицензионного соглашения с ООО
# "Ключевые Решения".
######################################################################
"""UserAdd class for the Zope 3 based arvidskin package

$Id: useradd.py 43 2007-12-11 20:09:46Z Arvi3D $
"""
__author__  = "Arvid"
__license__ = "KSL"
__version__ = "$Revision: 43 $"
__date__ = "$Date: 2007-12-11 20:09:46 +0000 (Tue, 11 Dec 2007) $"

from zope.app import zapi
from zope.formlib.form import AddForm, applyChanges, Fields, Field, action, haveInputWidgets

_ = lambda x : x

from ks.schema.captcha.captcha import Captcha, _ as _c

from arvidcontent.principalsource.user.browser.useradd import UserAdd as UserAddBase
from arvidcontent.principalsource.interfaces import IMountUser

captcha = Field(Captcha(title=_c(u'Captcha')), name = 'captcha')

class UserAdd(UserAddBase):

    label= _(u"Sign up new user")
    form_fields = Fields(UserAddBase.form_fields, captcha, omit_readonly = True)

    def add(self, object):
        container = zapi.getUtility(IMountUser, context = self.context)
        ob = container.add(object)
        self.status = _(u"Post sent to your mail box. You must to activate your account.")
        return ob

    @action(_("Sing up"), condition=haveInputWidgets)
    def handle_add(self, action, data):
        self.createAndAdd(data)

    def nextURL(self):
        return zapi.absoluteURL(zapi.getSiteManager(context = self.context).__parent__, self.request)
